$├516 ╙ET ╘╥┴├╦ [$55] TO ─╔╥╘╥╦ [$╞┼6┬] AND ╙┼├╘╧╥ [$56] TO ─╔╥╙┼├ [$4├┼1].
$├520 ╩╙╥ ╧╨╬╔╥─ [$─4─┼] TO OPEN A READ CHANNEL AND GET THE FIRST ONE OR TWO BLOCKS.
$├523 ╠OAD .┴ WITH ╔╬─┼╪ [$4├┼4], THE LAST ENTRY WE WERE SEARCHING AND ╩╙╥ ╙┼╘╨╬╘ [$─533] TO SET THE ─╔╥╨╘╥ [$69/$6┴] TO POINT TO THIS ENTRY.
╙┼┴╥├╚ ├ONTINUE SEARCH OF ENTRIES
$├529 ╙ET ┼╬╘╞╬─ [$4├┬5] TO $╞╞ TO INDICATE ENTRY IS NOT FOUND.
$├52┼ ╔F ╞╔╠├╬╘ [$4├┼5] < 0 THEN THERE ARE NO ENTRIES LEFT IN THIS BLOCK SO BRANCH TO ╙╥40 TO OBTAIN ANOTHER BLOCK.
$├533 ╙ET .┴ TO $20 (THE SIZE OF A DIRECTORY ENTRY), ╩╙╥ ╔╬├╨╬╘ [$─281] TO INCREMENT THE ACTIVE BUFFER POINTER, AND JUMP TO ╙╥20 TO SCAN THIS ENTRY.
$├53┬ ╙╥40 ╩╙╥ ╬╪╘┬╒╞ [$─4┬7] TO GET THE NEXT DIRECTORY BLOCK AND JUMP TO ╙╥10 TO START PROCESSING IT.
$├541 ╙╥50 ╓ALID ENTRY WAS FOUND. ├OPY LOW ORDER BYTE OF ─╔╥┬╒╞ [$69], THE OFFSET OF THE VALID ENTRY, INTO ╔╬─┼╪ [$4├┼4].
$├546 ╩╙╥ ├╒╥┬╠╦ [$──┼6] TO OBTAIN THE SECTOR # FOR THIS BLOCK, COPY ╙┼├╘╧╥ [$56] TO ─╔╥╙┼├ [$4├┼1], AND RETURN WITH A VALID ENTRY.
┴╒╘╧╔ ├HECK FOR DISK AND INITIALIZE DRIVE IF NECESSARY
$├54╞ ╔F ┴╒╘╧╞╟ [$4├34] IS NOT ZERO, AUTO-INITIALIZATION IS DISABLED SO BRANCH TO ┴╒╘╧2.
$├554 ╠OAD .╪ WITH ─╥╓╬╒═ [$54] AND SEE IF THE DISKETTE HAS BEEN SWAPPED BY DOING AN ╠╙╥ ON THE WRITE PROTECT CHANGE FLAG ╫╨╙╫,╪ [$4├2─,╪]. ╔F .├ IS CLEAR THEN THERE HAS BEEN NO CHANGE SO BRANCH TO ┴╒╘╧2.
$├55┬ ╙ET ╩╧┬╥╘╬ [$4├┼8] TO $╞╞.
$├560 ╩╙╥ ╔╘╥╔┴╠ [$─0┼0] TO INITIALIZE THE DRIVE.
$├563 ╙ET .┘ TO $╞╞ (DRIVE STATUS) AND CHECK THE JOB CODE RETURNED BY ╔╘╥╔┴╠. ╔F IT IS $02 (NO HEADER), $03 (NO ╙┘╬├), OR $0╞ (NO DRIVE) THEN BRANCH TO ┴╒╘╧1 TO SET THE DRIVE STATUS.
$├571 ├LEAR .┘ TO INDICATE THE DRIVE IS ALL RIGHT.
$├573 ┴╒╘╧1 ╠OAD .╪ WITH ─╥╓╬╒═ [$54] AND COPY THE VALUE IN .┘ (DRIVE STATUS) TO ╬╧─╥╓,╪ [$4├86,╪].
$├579 ╔F THE STATUS IS BAD THEN BRANCH TO ┴╒╘╧2.
$├57┬ ╩╙╥ ╔╬╔╘─╥ [$─0╞9] TO INITIALIZE THE DRIVE.
$├57┼ ┴╒╘╧2 ╠OAD .╪ WITH ─╥╓╬╒═ [$54], OBTAIN THE DRIVE STATUS FROM ╬╧─╥╓,╪ [$4├86], AND RETURN.
║FP
╘╥╬┴═┼ ╘RANSFER FILE NAME FROM COMMAND AREA TO A BUFFER
$├584 ╨USH LENGTH OF FILE NAME ONTO THE STACK.
$├585 ╩╙╥ ╞╬─╠═╘ [$├5┬├] TO FIND THE END OF THE STRING.
$├588 ╩╙╥ ╘╥├═┬╞ [$├59┼] TO COPY THE STRING.
$├58┬ ╥ESTORE FILE NAME LENGTH FROM THE STACK.
$├58├ ├ALCULATE AMOUNT OF PADDING BY SUBTRACTING THE STRING LENGTH, ╙╘╥╙╔┌ [$4├┴─], FROM .┴ (FILE NAME LENGTH) AND TRANSFERRING TO .╪. ╔F THIS VALUE IS 0 OR LESS THEN BRANCH TO ╘╬20 TO EXIT.
$├595 ╙ET THE PAD CHARACTER TO $┴0 AND FILL IN THE DATA BUFFER (─╔╥┬╒╞),┘ [($69),┘] FOR THE LENGTH IN .╪.
$├59─ ╘╬20 ╥ETURN.
╘╥├═┬╞ ╘RANSFER FROM COMMAND TO DATA BUFFER
$├59┼ ╙ET ─╔╥┬╒╞ [$69-$6┴] TO POINT TO THE DATA BUFFER IN WHICH TO STORE THE STRING BY USING .┘ AS AN INDEX INTO THE ┬╒╞╘┴┬ [$7┴...] POINTER TABLE.
$├5┴┬ ╙ET DATA BUFFER INDEX IN .┘ TO ZERO.
$├5┴─ ╘╥10 ├OPY BYTE FROM ├═─┬╒╞,╪ [$4┼00,╪] TO THE DATA AREA (─╔╥┬╒╞),┘ [($69),┘].
$├5┬2 ╔NCREMENT .┘ AND IF ZERO THEN BRANCH TO ╘╥20 TO STOP.
$├5┬6 ╔NCREMENT .╪ AND IF .╪ < ╠╔═╔╘ [$4┼2╞] THEN LOOP BACK TO ╘╥10 TO COPY ANOTHER CHARACTER.
$├5┬┬ ╘╥20 ╥ETURN - STRING COPIED.
╞╬─╠═╘ ╞IND END OF FILE NAME IN ├═─┬╒╞
$├5┬├ ╙ET ╙╘╥╙╔┌ [$4├┴─] TO ZERO.
$├5├1 ╨USH .╪ (STARTING POSITION OF FILE NAME) ONTO THE STACK.
$├5├3 ╞╠05 ╔F ├═─┬╒╞,╪ [$4┼00,╪] = $2├ (,) OR $3─ (=) THEN BRANCH TO ╞╠10 SINCE THE END OF THE FILE NAME HAS BEEN DETECTED.
$├5├┼ ╔NCREMENT ╙╘╥╙╔┌ [$4├┴─] AND .╪ TO ADVANCE TO THE NEXT CHARACTER.
$├5─2 ╔F ╙╘╥╙╔┌ [$4├┴─] >= $0╞ THEN BRANCH TO ╞╠10 TO EXIT SINCE FILE NAMES HAVE A MAX LENGTH OF 16.
$├5─9 ╔F .╪ < ├═─╙╔┌ [$4╞] THEN BRANCH BACK TO ╞╠05 TO CONTINUE LOOKING FOR THE END OF THE FILE NAME.
$├5── ╞╠10 ╙ET ╠╔═╔╘ [$4┼2╞] TO .╪, THE ENDING OFFSET OF THE FILE NAME.
$├5┼0 ╥ESTORE .╪ FROM THE STACK AND RETURN.
╟┼╘╬┴═ ╟ET FILE ENTRY FROM DIRECTORY
$├5┼3 ╙AVE ╙┴ [$58] AND ╠╔╬─╪ [$57] ON THE STACK.
$├5┼9 ╩╙╥ ╟╬╙╒┬ [$├5╞3] TO GET A DIRECTORY ENTRY BY USING A SECONDARY ADDRESS OF $11 (THE INTERNAL READ CHANNEL).
$├5┼├ ╥ESTORE ╙┴ [$58] AND ╠╔╬─╪ [$57] FROM THE STACK AND RETURN.